package interfaces;

import java.util.Date;

public interface ClientInterface {

	/**
	 * @param x coordenada de origem
	 * @param y coordenada de origem
	 * @return JSON com uma lista de rotas encontradas 
	 */
	public String getLines(int x, int y);
	
	/**
	 * @param x1 coordenada de origem
	 * @param y1 coordenada de origem
	 * @param x2 coordenada de destino
	 * @param y2 coordenada de destino
	 * @return JSON com uma lista de rotas encontradas 
	 */
	public String getLinesCoordenates(double latiO, double longO, double latiF, double longF);
	
	/**
	 * @param x1 coordenada de origem
	 * @param y1 coordenada de origem
	 * @param x2 coordenada de destino
	 * @param y2 coordenada de destino
	 * @return JSON com uma lista de rotas encontradas que possuem integaração com terminais 
	 */
	public String getLinesTerminal(double latiO, double longO, double latiF, double longF);
	
	/**
	 * @param linha codigo da linha
	 * @return informacoes obtidas sobre a linha
	 */
	public String getInfo(int line);
	
	/**
	 * @param myBaseDate data da base de dados do cliente
	 * @return verdadeiro se a base do cliente estiver desatualizada
	 */
	public boolean isBaseUpdated(Date myBaseDate);
	
	/**
	 * @param myBaseDate data da base de dados do cliente
	 * @return url para o json gerado com o update para o cliente
	 */
	public String getUpdate(Date myBaseDate);
	
	/**
	 * @return string contendo o nome e o codigo de todas as linhas
	 */
	public String getAllLines();
	/**
	 * 
	 * @param line - codigo da linha de onibus
	 * @return string com todas a ruas pertencentes a rota
	 */
	public String getStreets(int line);
	
}
